METHOD if_srm_sp_visual_query_win~query_sps_single_result.
DATA:
* Simple
i_rfcdest TYPE string,
i_persnr_string TYPE string,
* ITABs
i_tab_sp_poid TYPE srm_list_poid,
* Structures
i_wa_sp_poid TYPE srmpoid,
i_wa_result TYPE /xft/srm_demo_10,
* Interfaces
iref_poid TYPE REF TO if_srm_poid.
* Get rfc destination
CALL METHOD /xft/cl_srm_demo_pf_system=>get_rfc_destination
RECEIVING
re_va = i_rfcdest.
* Query dialog
CALL FUNCTION '/XFT/EPA_F4_PERNR' DESTINATION i_rfcdest
IMPORTING
re_va = i_persnr_string.
IF i_persnr_string IS INITIAL.
* Cancel ...
iref_poid = me->if_srm_sp_object~get_poid( ).
request->set_result( iref_poid ).
request->set_activity_state( if_srm_request=>activity_
canceled_by_user ).
RETURN.
ENDIF.
* Fill SP POID ITAB
i_wa_sp_poid-id = 'PERSNR'.
i_wa_sp_poid-value = i_persnr_string.
INSERT i_wa_sp_poid INTO TABLE i_tab_sp_poid.
* Set my own poid
me->if_srm_poid~set_sp_poid( i_tab_sp_poid ).
* Get my poid
iref_poid = me->if_srm_sp_object~get_poid( ).
* Set result
request->set_result( iref_poid ).
request->set_activity_state( if_srm_request=>activity_query_
finished_ok ).
ENDMETHOD.